package com.sale.goods.service;

import com.sale.common.mybatis.core.page.PageQuery;
import com.sale.common.mybatis.core.page.TableDataInfo;
import com.sale.goods.domain.GoodsInvoiceInto;
import com.sale.goods.domain.dto.GoodsInvoiceIntoDto;
import com.sale.goods.domain.dto.single.GoodsInvoiceIntoSingle;
import com.sale.goods.domain.vo.GoodsInvoiceIntoVo;

import java.text.ParseException;

/**
 * @Description 进项税发票
 * @Date 23-07-19
 * @Author hl
 **/
public interface IGoodsInvoiceIntoService {

    /**
     * 分页查询进项税发票
     *
     * @param goodSInvoiceIntoVo,pageQuery
     * @return 进项税发票集合
     */
    TableDataInfo<GoodsInvoiceIntoDto> selectInvoiceIntoList(GoodsInvoiceIntoVo goodSInvoiceIntoVo, PageQuery pageQuery) throws ParseException;

    /**
     * 新增进项税发票
     *
     * @param goodSInvoiceIntoVo
     * @return int
     */
    int insertInvoiceInto(GoodsInvoiceIntoVo goodSInvoiceIntoVo) throws Exception;

    /**
     * 查询进项税发票
     *
     * @param invoiceIntoId
     * @return  GoodSInvoiceIntoDto
     */
    GoodsInvoiceIntoSingle selectInvoiceIntoById(long invoiceIntoId);

    /**
     * 删除进项税发票
     *
     * @param invoiceIntoId
     * @return  int
     */
    int deleteInvoiceIntoById(Long invoiceIntoId);

    /**
     * 修改进项税发票
     *
     * @param goodSInvoiceIntoVo
     * @return  int
     */
    int updateInvoiceIntoEdit(GoodsInvoiceIntoVo goodSInvoiceIntoVo);

    /**
     * 提交审核
     *
     * @param invoiceIntoId
     * @return  int
     */
    int submitReview(Long invoiceIntoId);

    /**
     * 撤销审核
     *
     * @param invoiceIntoId
     * @return  int
     */
    int deleteReview(Long invoiceIntoId);

    /**
     * 审核单据
     *
     * @param goodSInvoiceIntoVo
     * @return  int
     */
    int goodSExamineReview(GoodsInvoiceIntoVo goodSInvoiceIntoVo) throws Exception;

    /**
     * 认证
     *
     * @param invoiceIntoId
     * @return  int
     */
    int goodsThe(Long invoiceIntoId);
}
